package com.micro.ai.template.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.micro.ai.template.entity.TemplateTag;

import java.util.List;

/**
 * 模板标签Service
 *
 * @author micro-ai
 * @since 0.0.1
 */
public interface TemplateTagService extends IService<TemplateTag> {

    /**
     * 为模板添加标签
     *
     * @param templateId 模板ID
     * @param tagNames 标签名称列表
     */
    void addTagsToTemplate(String templateId, List<String> tagNames);

    /**
     * 从模板移除标签
     *
     * @param templateId 模板ID
     * @param tagNames 标签名称列表
     */
    void removeTagsFromTemplate(String templateId, List<String> tagNames);

    /**
     * 获取模板的标签列表
     *
     * @param templateId 模板ID
     * @return 标签列表
     */
    List<TemplateTag> getTemplateTags(String templateId);

    /**
     * 获取所有标签
     *
     * @return 所有标签列表
     */
    List<TemplateTag> getAllTags();

    /**
     * 获取热门标签
     *
     * @param limit 返回数量
     * @return 热门标签列表
     */
    List<TemplateTag> getPopularTags(int limit);

    /**
     * 根据标签查询模板ID列表
     *
     * @param tagName 标签名称
     * @return 模板ID列表
     */
    List<String> getTemplateIdsByTag(String tagName);
}

